import { login, getUserInfo, getUserById } from '@/api/user'
// 引入Cookies封装函数
import { getToken, setToken, removeToken } from '@/utils/auth'
import { resetRouter } from '@/router'
const state = {
  // 从本地拿token
  token: getToken() || localStorage.getItem('hr_token') || '',
  userInfo: {}
}

const mutations = {
  // 登录
  Settoken(state, data) {
    // 本地存储
    localStorage.setItem('hr_token', data)
    setToken(data)
    // 保存token到state中
    state.token = data
  },
  // 退出清除token数据
  removetoken(state) {
    // 清除Cookies保存的
    removeToken()
    localStorage.clear('hr_token')
    state.token = ''
  },
  // 用户数据
  setUserInfo(state, data) {
    // 深拷贝
    state.userInfo = { ...data }
  },
  // 退出清除userInfo数据
  removeuserInfo(state) {
    state.userInfo = {}
  }

}
// 异步操作
const actions = {
  // 异步变同步
  // 登录
  async login(store, data) {
    const res = await login(data)
    // 登录时获取当前时间
    localStorage.setItem('logTime', Date.now())
    // console.log(12, res)
    // 请求响应返回res就是token不用res.data.datale
    store.commit('Settoken', res)
  },
  // 获取用户数据
  async getUserInfo(store) {
    const res = await getUserInfo()

    // 添加详细信息
    const Id = await getUserById(res.userId)
    store.commit('setUserInfo', { ...res, ...Id })
    // console.log(39, res)
  },
  // 退出登录
  logOut(store) {
    store.commit('removetoken')
    store.commit('removeuserInfo')
    resetRouter()
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}

